package com.fdb.efp.nls.service.util;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SDicMappingUtil {

	private static Logger logger = LoggerFactory.getLogger(SDicMappingUtil.class);

	private static final Map<String, String> sDicMap = new HashMap<>();

	private volatile static boolean isInit = false;

	/**
	 * 
	 * 读取dicMappings.properties配置文件，组装成 KEY: opttypeEnname, VALUE: enname
	 * 
	 * @throws Exception
	 * @author ludayong
	 * @since 2019年2月14日 下午4:34:35
	 * @version 1.0
	 */
	private static void init() throws Exception {
		// 获取配置文件
		try {
			ResourceBundle res = ResourceBundle.getBundle("dicMappings");
			Enumeration<String> keys = res.getKeys();
			while (keys.hasMoreElements()) {
				String keyStr = keys.nextElement();
				String value = res.getString(keyStr);
				String[] temp = value.split("_");
				if (temp.length == 3) {
					sDicMap.put(temp[0] + temp[1], temp[2]);
				}
			}
		} catch (Exception e) {
			logger.error("获取配置信息出错！", e);
			throw new Exception("获取配置信息出错！" + e);
		}
		isInit = true;
	}

	/**
	 * 通过字典项类型，字典项值获取本地对应字典项值
	 * 
	 * @param opttype
	 *            字典项类型
	 * @param value
	 *            外部系统字典项值
	 * @return String key:不为空，返回本地系统字典项值；key为空，返回入参字典项值
	 * @throws Exception
	 * @author ludayong
	 * @since 2019年2月14日 下午4:34:35
	 * @version 1.0
	 */
	public static String getLocalSysDicVal(String opttype, String value) throws Exception {
		if (!isInit) {
			init();
		}
		String mapStr = opttype + value;
		if (sDicMap.containsKey(mapStr)) {
			return sDicMap.get(mapStr);
		}
		return value;
	}
}
